﻿using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Athena.RemoteAddress
{
    public interface IServiceAddressManager
    {
        event EventHandler<ServiceAddressEventArgs> Created;

        event EventHandler<ServiceAddressEventArgs> Changed;

        event EventHandler<ServiceAddressEventArgs> Removed;

        Task<IEnumerable<ServiceAddressDescriptor>> GetServiceAddressAsync();

        Task SetServiceAddressAsync(IEnumerable<ServiceAddressDescriptor> remoteAddressModel);

        Task ClearAsync();
    }
}
